﻿using System;
using System.Collections.Generic;
using System.Text;
using Entidad;
using System.Data;
using Persistencias;

namespace Persistencia
{
    public class PerCategoria : IPersistencia
    {
        public PerCategoria() { }

        public void Insertar(IEntidad entidad)
        {
            throw new NotImplementedException();
        }
        public void Eliminar(int Id)
        {
            throw new NotImplementedException();
        }
        public void Modificar(IEntidad entidad)
        {
            AccesoaDatos d = new AccesoaDatos();
            try
            {
                EntCategoria Categoria = (EntCategoria)entidad;

                d.CrearParametro("@IdCategoria", Categoria.IdCategoria, SqlDbType.NVarChar);
                d.CrearParametro("@CategoriaMensual", Categoria.Nombre, SqlDbType.Money);
                d.CrearParametro("@CategoriaRecargo", Categoria.IdCategoria, SqlDbType.Money);

                d.EjecutaSentencia("sp_ModificarCategoria");

            }
            catch (Exception ex)
            {
                System.ApplicationException excepcion = new System.ApplicationException(ex.Message, ex);
                throw excepcion;
            }
        }



        public IEntidad Obtener(String ID)
        {
            try
            {

                AccesoaDatos d = new AccesoaDatos();
                List<IEntidad> DatosCategoria = new List<IEntidad>();
                EntCategoria Categoria = new EntCategoria();
                d.CrearParametro("@IdCategoria", ID, SqlDbType.VarChar);
                DataTable _tabla = d.EjecutaSelect("ObtenerCategoriaPorId");
                foreach (DataRow _row in _tabla.Rows)
                {
                    Categoria.IdCategoria = Convert.ToInt32(_row["IdCategoria"]);
                    Categoria.AñoFinal = Convert.ToInt32(_row["AñoFinal"]);
                    Categoria.AñoInicial = Convert.ToInt32(_row["AñoInicial"]);
                    Categoria.Nombre = _row["Nombre"].ToString();
                }
                return Categoria;
            }
            catch (Exception ex)
            {
                System.ApplicationException excepcion = new System.ApplicationException(ex.Message, ex);
                throw excepcion;
            }
        }
        public List<IEntidad> ObtenerTodos()
        {
            try
            {

                AccesoaDatos d = new AccesoaDatos();
                List<IEntidad> DatosCategoria = new List<IEntidad>();
                DataTable _tabla = d.EjecutaSelect("ObtenerTodosCategoria");
                foreach (DataRow _row in _tabla.Rows)
                {
                    EntCategoria Categoria = new EntCategoria();

                    Categoria.IdCategoria = Convert.ToInt32(_row["IdCategoria"]);
                    Categoria.AñoFinal = Convert.ToInt32(_row["AñoFinal"]);
                    Categoria.AñoInicial = Convert.ToInt32(_row["AñoInicial"]);
                    Categoria.Nombre = _row["Nombre"].ToString();
                   

                    DatosCategoria.Add(Categoria);
                }
                return DatosCategoria;
            }
            catch (Exception ex)
            {
                System.ApplicationException excepcion = new System.ApplicationException(ex.Message, ex);
                throw excepcion;
            }
        }
    }
}
